package dbLayer;

public interface IFDBTables {
	// generates the tables of the database
	/**
	 * Creates all the tables needed for this database. Hard-coded for this company only!
	 * @return
	 * @throws Exception
	 */
	public int createAllTables() throws Exception;
	// generate specific table of the database
	/**
	 * Creates the table with the name wanted. Hard-coded for this company only!
	 * @param tableName The name for the specific table you want created.
	 * @return
	 * @throws Exception
	 */
	public int dropAllTables() throws Exception;
	// deletes specific table of the database
	/**
	 * Drops a specific table from the database
	 * @param tableName The name for the table you want to drop.
	 * @return
	 * @throws Exception
	 */
	public int exportTables() throws Exception;
	// import tables (backup)
	/**
	 * Imports tables from an SQL file. 
	 * @param path The path to the file in string format
	 * @return
	 * @throws Exception
	 */
	public int importTables(String path) throws Exception;
	// check tables integrity
	/**
	 * Checks for database integrity. 
	 * @return Returns true if all tables are how they should be.
	 */
	public boolean checkTables();
	/**
	 * Gets the sql string from a file
	 * @return Returns a string containing the file contents
	 */
	public String getSqlFromFile(String path) throws Exception;
	
}
